三维坐标系旋转矩阵推导

  • 注意坐标系旋转不同于坐标点旋转
  • 坐标系旋转角度θ则等同于将目标点围绕坐标原点反方向旋转同样的角度θ

1.三维坐标系推导过程

假设三维坐标系是一个右手坐标系。如下图
在这里插入图片描述

可以通过右手定则确定是右手坐标系。
确定轴的旋转的正方向,用右手的大拇指指向轴的正方向,弯曲手指手指。手指方向即是轴的正旋转方向。

2.坐标轴绕z轴旋转

坐标轴绕z轴正向旋转相当于op向量在xoy平面上顺时针旋转:

在这里插入图片描述
则可以推导出
在这里插入图片描述
其中M’坐标(x’,y’,z’);M坐标(x,y,z)

3.绕X轴旋转

同理绕X轴正向旋转相当于如下图的向量旋转。
在这里插入图片描述
[ x ′ y ′ z ′ ] = [ 1 0 0 0 c o s ( θ ) s i n ( θ ) 0 − s i n ( θ ) c o s ( θ ) ] [ x y z ] \begin{bmatrix} x' \\ y' \\z' \end{bmatrix} = \begin{bmatrix} 1&0& 0 \\ 0&cos(\theta) & sin(\theta) \\ 0&-sin(\theta) & cos(\theta) \\ \end{bmatrix} \begin{bmatrix} x \\ y \\ z \end{bmatrix} xyz=1000cos(θ)sin(θ)0sin(θ)cos(θ)xyz

4. 绕Y轴旋转

绕Y轴正向旋转相当于下图

在这里插入图片描述
[ x ′ y ′ z ′ ] = [ c o s ( θ ) 0 − s i n ( θ ) 0 1 0 s i n ( θ ) 0 c o s ( θ ) ] [ x y z ] \begin{bmatrix} x' \\ y' \\z' \end{bmatrix} = \begin{bmatrix} cos(\theta) & 0&-sin(\theta) \\ 0&1& 0 \\ sin(\theta) & 0& cos(\theta) \\ \end{bmatrix} \begin{bmatrix} x \\ y \\ z \end{bmatrix} xyz=cos(θ)0sin(θ)010sin(θ)0cos(θ)xyz

5.绕X,Y,Z轴正向旋转

绕X,Y,Z轴,坐标系正向旋转,所需要的旋转矩阵是
在这里插入图片描述

  • 7
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
rpr三自由度机械臂的运动学模型可以通过雅可比矩阵来描述,其推导过程如下: 首先,我们需要确定机械臂末端执行器的位置和姿态。假设机械臂的基座坐标系为 $O_0$,末端执行器的坐标系为 $O_3$,则末端执行器的位置可以用三维向量表示为: $$ \boldsymbol{p} = \begin{bmatrix} x \\ y \\ z \end{bmatrix} $$ 末端执行器的姿态可以用欧拉角表示为 $\boldsymbol{\theta} = [\theta_1, \theta_2, \theta_3]$,其中 $\theta_1$、$\theta_2$、$\theta_3$ 分别表示绕 $x$、$y$、$z$ 轴的旋转角度。 接下来,我们需要确定机械臂各关节的坐标系和相对运动关系。假设机械臂的三个关节分别为 $J_1$、$J_2$、$J_3$,它们的坐标系分别为 $O_1$、$O_2$、$O_3$,则它们之间的相对位置和姿态关系可以用以下变换矩阵表示: $$ \boldsymbol{T}_{01} = \begin{bmatrix} \cos\theta_1 & -\sin\theta_1 & 0 & 0 \\ \sin\theta_1 & \cos\theta_1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}, \quad \boldsymbol{T}_{12} = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & \cos\theta_2 & -\sin\theta_2 & 0 \\ 0 & \sin\theta_2 & \cos\theta_2 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}, \quad \boldsymbol{T}_{23} = \begin{bmatrix} \cos\theta_3 & -\sin\theta_3 & 0 & 0 \\ \sin\theta_3 & \cos\theta_3 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} $$ 其中,$\boldsymbol{T}_{01}$ 表示从 $O_1$ 到 $O_0$ 的变换矩阵,$\boldsymbol{T}_{12}$ 表示从 $O_2$ 到 $O_1$ 的变换矩阵,$\boldsymbol{T}_{23}$ 表示从 $O_3$ 到 $O_2$ 的变换矩阵。 有了以上变换矩阵,我们可以通过正向运动学计算出末端执行器的位置和姿态。但是,反向运动学需要求解关节变量 $\theta_1$、$\theta_2$、$\theta_3$ 对末端执行器位置和姿态的导数,因此需要求出雅可比矩阵。 雅可比矩阵可以用以下公式计算: $$ \boldsymbol{J} = \begin{bmatrix} \frac{\partial p_x}{\partial \theta_1} & \frac{\partial p_x}{\partial \theta_2} & \frac{\partial p_x}{\partial \theta_3} \\ \frac{\partial p_y}{\partial \theta_1} & \frac{\partial p_y}{\partial \theta_2} & \frac{\partial p_y}{\partial \theta_3} \\ \frac{\partial p_z}{\partial \theta_1} & \frac{\partial p_z}{\partial \theta_2} & \frac{\partial p_z}{\partial \theta_3} \\ \frac{\partial \theta_1}{\partial t} & \frac{\partial \theta_2}{\partial t} & \frac{\partial \theta_3}{\partial t} \end{bmatrix} $$ 其中,$\frac{\partial p}{\partial \theta}$ 表示末端执行器位置对关节变量的导数,$\frac{\partial \theta}{\partial t}$ 表示关节变量对时间的导数,即关节速度。 根据链式法则,我们可以将 $\frac{\partial p}{\partial \theta}$ 分解为以下三个部分的乘积: $$ \frac{\partial p}{\partial \theta} = \frac{\partial p}{\partial O_3} \cdot \frac{\partial O_3}{\partial O_2} \cdot \frac{\partial O_2}{\partial \theta} $$ 其中,$\frac{\partial p}{\partial O_3}$ 表示末端执行器位置对 $O_3$ 坐标系的变换矩阵的导数,$\frac{\partial O_3}{\partial O_2}$ 表示 $O_3$ 坐标系对 $O_2$ 坐标系的变换矩阵的导数,$\frac{\partial O_2}{\partial \theta}$ 表示 $O_2$ 坐标系对关节变量的导数。 根据变换矩阵的求导公式,可以得到: $$ \frac{\partial p}{\partial O_3} = \begin{bmatrix} \frac{\partial x}{\partial O_{3_{11}}} & \frac{\partial x}{\partial O_{3_{12}}} & \frac{\partial x}{\partial O_{3_{13}}} \\ \frac{\partial y}{\partial O_{3_{21}}} & \frac{\partial y}{\partial O_{3_{22}}} & \frac{\partial y}{\partial O_{3_{23}}} \\ \frac{\partial z}{\partial O_{3_{31}}} & \frac{\partial z}{\partial O_{3_{32}}} & \frac{\partial z}{\partial O_{3_{33}}} \end{bmatrix} $$ $$ \frac{\partial O_3}{\partial O_2} = \begin{bmatrix} \frac{\partial O_{3_{11}}}{\partial O_{2_{11}}} & \frac{\partial O_{3_{11}}}{\partial O_{2_{12}}} & \frac{\partial O_{3_{11}}}{\partial O_{2_{13}}} & 0 & 0 & 0 \\ \frac{\partial O_{3_{21}}}{\partial O_{2_{11}}} & \frac{\partial O_{3_{21}}}{\partial O_{2_{12}}} & \frac{\partial O_{3_{21}}}{\partial O_{2_{13}}} & 0 & 0 & 0 \\ \frac{\partial O_{3_{31}}}{\partial O_{2_{11}}} & \frac{\partial O_{3_{31}}}{\partial O_{2_{12}}} & \frac{\partial O_{3_{31}}}{\partial O_{2_{13}}} & 0 & 0 & 0 \\ 0 & 0 & 0 & \frac{\partial O_{3_{11}}}{\partial O_{2_{21}}} & \frac{\partial O_{3_{11}}}{\partial O_{2_{22}}} & \frac{\partial O_{3_{11}}}{\partial O_{2_{23}}} \\ 0 & 0 & 0 & \frac{\partial O_{3_{21}}}{\partial O_{2_{21}}} & \frac{\partial O_{3_{21}}}{\partial O_{2_{22}}} & \frac{\partial O_{3_{21}}}{\partial O_{2_{23}}} \\ 0 & 0 & 0 & \frac{\partial O_{3_{31}}}{\partial O_{2_{21}}} & \frac{\partial O_{3_{31}}}{\partial O_{2_{22}}} & \frac{\partial O_{3_{31}}}{\partial O_{2_{23}}} \end{bmatrix} $$ $$ \frac{\partial O_2}{\partial \theta} = \begin{bmatrix} \frac{\partial O_{2_{11}}}{\partial \theta_1} & \frac{\partial O_{2_{11}}}{\partial \theta_2} & \frac{\partial O_{2_{11}}}{\partial \theta_3} \\ \frac{\partial O_{2_{21}}}{\partial \theta_1} & \frac{\partial O_{2_{21}}}{\partial \theta_2} & \frac{\partial O_{2_{21}}}{\partial \theta_3} \\ \frac{\partial O_{2_{31}}}{\partial \theta_1} & \frac{\partial O_{2_{31}}}{\partial \theta_2} & \frac{\partial O_{2_{31}}}{\partial \theta_3} \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \end{bmatrix} $$ 将以上三个矩阵相乘,得到 $\frac{\partial p}{\partial \theta}$。 同理,我们可以计算出关节变量对时间的导数 $\frac{\partial \theta}{\partial t}$,即关节速度。最终,将 $\frac{\partial p}{\partial \theta}$ 和 $\frac{\partial \theta}{\partial t}$ 组合成雅可比矩阵 $\boldsymbol{J}$,即可完成反向运动学的求解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值